<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script type="text/javascript" src="../js/vue.js"></script>
    <title>列表排序</title>
</head>
<body>
    <div id="root"> 
        <input type="text" placeholder="请输入用户名字" v-model="name">
        <button @click="sortType = 0">年龄原顺序</button>
        <button @click="sortType = 1">年龄降序</button>
        <button @click="sortType = 2">年龄升序</button>
        <li v-for ="(p, index) in filterPersons" :key="index">
            {{p.name}}-{{p.age}}
        </li>

    </div>
    <script type="text/javascript">
        const vm = new Vue({
            el:"#root",
            data(){
                return {
                    persons:[
                        {id:"001", name:"马冬梅", age:"18",sex:"女"},
                        {id:"002", name:"周冬雨", age:"19",sex:"男"},
                        {id:"003", name:"周杰伦", age:"20",sex:"女"},
                        {id:"004", name:"温兆伦", age:"21",sex:"男"}
                    ],
                    name:"",
                    sortType:0//0原顺序 1降序 2升序
                }
            },
            computed:{
                filterPersons(){
                    const arr =  this.persons.filter(p=>{
                        return p.name.indexOf(this.name)!==-1  
                    })
                    arr.sort((a,b)=>{
                        return this.sortType === 1 ? b.age - a.age : a.age - b.age;
                    })
                    return arr;
                }
            }

        })
    </script>
</body>
</html>